<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>XMP Toolkit SDK: AdobeXMPCommon::IObjectFactory_v1 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xmp_tagline_small.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">XMP Toolkit SDK
   &#160;<span id="projectnumber">6.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classAdobeXMPCommon_1_1IObjectFactory__v1.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classAdobeXMPCommon_1_1IObjectFactory__v1-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">AdobeXMPCommon::IObjectFactory_v1 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace.  
 <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for AdobeXMPCommon::IObjectFactory_v1:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classAdobeXMPCommon_1_1IObjectFactory__v1.png" usemap="#AdobeXMPCommon::IObjectFactory_5Fv1_map" alt=""/>
  <map id="AdobeXMPCommon::IObjectFactory_5Fv1_map" name="AdobeXMPCommon::IObjectFactory_5Fv1_map">
<area href="classAdobeXMPCommon_1_1IVersionable.html" title="Interface that serves as the base interface for all the externally exposed interfaces which needs to ..." alt="AdobeXMPCommon::IVersionable" shape="rect" coords="0,0,244,24"/>
<area href="classAdobeXMPCore_1_1ICoreObjectFactory__v1.html" title="Version1 of a interface that represents a factory to create various artifacts of XMP DOM like array,..." alt="AdobeXMPCore::ICoreObjectFactory_v1" shape="rect" coords="0,112,244,136"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae3e9eb977c305e48425654bec514f405"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">pIUTF8String_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">CreateUTF8String</a> (const char *buf, <a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a> count, <a class="el" href="namespaceAdobeXMPCommon.html#ae77ac4e503ff59cb2145b6681eb7c150">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:ae3e9eb977c305e48425654bec514f405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IUTF8String object.  <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae3e9eb977c305e48425654bec514f405">More...</a><br /></td></tr>
<tr class="separator:ae3e9eb977c305e48425654bec514f405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae86e711336af91dca23f4611b1f03724"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">pIError_base</a> APICALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">CreateError</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> domain, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> code, <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> severity, <a class="el" href="namespaceAdobeXMPCommon.html#ae77ac4e503ff59cb2145b6681eb7c150">pcIError_base</a> &amp;error) <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a>=0</td></tr>
<tr class="memdesc:ae86e711336af91dca23f4611b1f03724"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an IError object.  <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ae86e711336af91dca23f4611b1f03724">More...</a><br /></td></tr>
<tr class="separator:ae86e711336af91dca23f4611b1f03724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95fcbab435329d052ab42028da563c02"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a95fcbab435329d052ab42028da563c02">~IObjectFactory_v1</a> () <a class="el" href="XMPCommonDefines_8h.html#a5a929113d3d50bda3fb7135a5c8b24a2">__NOTHROW__</a></td></tr>
<tr class="separator:a95fcbab435329d052ab42028da563c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f02bcd4eafa4d318197c39dd55d0957"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2f02bcd4eafa4d318197c39dd55d0957">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
<tr class="separator:a2f02bcd4eafa4d318197c39dd55d0957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
<tr class="memitem:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">GetInterfacePointer</a> ()</td></tr>
<tr class="memdesc:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to an interface object implementing the requested version.  <a href="classAdobeXMPCommon_1_1IVersionable.html#ad6539461695decfaea8a44798db51e54">More...</a><br /></td></tr>
<tr class="separator:ad6539461695decfaea8a44798db51e54 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplParams" colspan="2">template&lt;typename requestedInterface &gt; </td></tr>
<tr class="memitem:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memTemplItemLeft" align="right" valign="top">const <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> requestedInterface *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a1827fc276dd3beb0df9aaab4ad1626d0">GetInterfacePointer</a> () const</td></tr>
<tr class="memdesc:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw pointer to a const interface object implementing the requested version.  <a href="classAdobeXMPCommon_1_1IVersionable.html#a1827fc276dd3beb0df9aaab4ad1626d0">More...</a><br /></td></tr>
<tr class="separator:a1827fc276dd3beb0df9aaab4ad1626d0 inherit pub_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ab61b0ddca88dc76f0499d317f189b918"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">GetInterfaceID</a> ()</td></tr>
<tr class="memdesc:ab61b0ddca88dc76f0499d317f189b918"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique ID assigned to the interface.  <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#ab61b0ddca88dc76f0499d317f189b918">More...</a><br /></td></tr>
<tr class="separator:ab61b0ddca88dc76f0499d317f189b918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81c25d76569a9249ab3c8a3e4490c73d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">GetInterfaceVersion</a> ()</td></tr>
<tr class="memdesc:a81c25d76569a9249ab3c8a3e4490c73d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version of the interface.  <a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a81c25d76569a9249ab3c8a3e4490c73d">More...</a><br /></td></tr>
<tr class="separator:a81c25d76569a9249ab3c8a3e4490c73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a2dc282621cdfef44b424ac91efb965a1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a> (<a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a> ptr)</td></tr>
<tr class="separator:a2dc282621cdfef44b424ac91efb965a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa906cf2b9efb958e49fd8c5122b8db96"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ad3e2f7d1ecbb2acf51db0d1daed9bebc">pcIObjectFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#aa906cf2b9efb958e49fd8c5122b8db96">MakeObjectFactory</a> (<a class="el" href="namespaceAdobeXMPCommon.html#a9c6772e1923a27b8faa5a2cc121a3608">pcIObjectFactory_base</a> ptr)</td></tr>
<tr class="separator:aa906cf2b9efb958e49fd8c5122b8db96"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classAdobeXMPCommon_1_1IVersionable"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classAdobeXMPCommon_1_1IVersionable')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classAdobeXMPCommon_1_1IVersionable.html">AdobeXMPCommon::IVersionable</a></td></tr>
<tr class="memitem:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#a3ccd9a1bdf7008906e094fb4e7f69826">~IVersionable</a> ()</td></tr>
<tr class="separator:a3ccd9a1bdf7008906e094fb4e7f69826 inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAdobeXMPCommon_1_1IVersionable.html#ac619a81b428c88cfce50feaa91a2479f">REQ_FRIEND_CLASS_DECLARATION</a> ()</td></tr>
<tr class="separator:ac619a81b428c88cfce50feaa91a2479f inherit pro_methods_classAdobeXMPCommon_1_1IVersionable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Version1 of a interface that represents a factory to create various artifacts defined within <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace. </p>
<p>Provides all the functions to create instances of various artifacts defined with <a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a> namespace. This is the interface through which clients of the library actually get access to all other interfaces. </p>

<p class="definition">Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00027">27</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a95fcbab435329d052ab42028da563c02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95fcbab435329d052ab42028da563c02">&#9670;&nbsp;</a></span>~IObjectFactory_v1()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual AdobeXMPCommon::IObjectFactory_v1::~IObjectFactory_v1 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00082">82</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;{};</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae86e711336af91dca23f4611b1f03724"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae86e711336af91dca23f4611b1f03724">&#9670;&nbsp;</a></span>CreateError()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a4e907810e5d5937b974343d279e0181d">pIError_base</a> APICALL AdobeXMPCommon::IObjectFactory_v1::CreateError </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a>&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae77ac4e503ff59cb2145b6681eb7c150">pcIError_base</a> &amp;&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates an IError object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">domain</td><td>An unsigned 32 bit integer value representing the error domain. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">code</td><td>An unsigned 32 bit integer value representing the error code. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">severity</td><td>An unsigned 32 bit integer value representing the severity of the error. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section attention"><dt>Attention</dt><dd>The returned pointer is allocated on heap by the module so client is responsible for its release. They should call Release once they no longer need this object. </dd></dl>

</div>
</div>
<a id="ae3e9eb977c305e48425654bec514f405"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3e9eb977c305e48425654bec514f405">&#9670;&nbsp;</a></span>CreateUTF8String()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespaceAdobeXMPCommon.html#a0430b250dd00621dcb9f32a3acb87b7f">pIUTF8String_base</a> APICALL AdobeXMPCommon::IObjectFactory_v1::CreateUTF8String </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">sizet</a>&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#ae77ac4e503ff59cb2145b6681eb7c150">pcIError_base</a> &amp;&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates an IUTF8String object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>pointer to a constant char buffer containing content. It can be null terminated or not. NULL pointer will be treated as empty string. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>A value of #<a class="el" href="namespaceAdobeXMPCommon.html#a1c85c2f558b495c3d41eabe692a96cf2">AdobeXMPCommon::sizet</a> indicating the length in case buf is not null terminated. In case buf is null terminated it can be set to npos. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">error</td><td>A reference to a pointer to const IError object which will be filled with the error object in case of any error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section attention"><dt>Attention</dt><dd>The returned pointer is allocated on heap by the module so client is responsible for its release. They should call Release once they no longer need this object. </dd></dl>

</div>
</div>
<a id="ab61b0ddca88dc76f0499d317f189b918"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab61b0ddca88dc76f0499d317f189b918">&#9670;&nbsp;</a></span>GetInterfaceID()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#aea1d692da07b844d1f642b47ea6a91bd">uint64</a> AdobeXMPCommon::IObjectFactory_v1::GetInterfaceID </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the unique ID assigned to the interface. </p>
<dl class="section return"><dt>Returns</dt><dd>64 bit unsigned integer representing the unique ID assigned to the interface. </dd></dl>

<p class="definition">Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00074">74</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;{ <span class="keywordflow">return</span> <a class="code" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">kIObjectFactoryID</a>; }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon::kIObjectFactoryID()</a>.</p>

</div>
</div>
<a id="a81c25d76569a9249ab3c8a3e4490c73d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81c25d76569a9249ab3c8a3e4490c73d">&#9670;&nbsp;</a></span>GetInterfaceVersion()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0b1bbe96e1a757e66974c2f076afe4d2">uint32</a> AdobeXMPCommon::IObjectFactory_v1::GetInterfaceVersion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the version of the interface. </p>
<dl class="section return"><dt>Returns</dt><dd>32 bit unsigned integer representing the version of the interface. </dd></dl>

<p class="definition">Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00080">80</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{ <span class="keywordflow">return</span> 1; }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa906cf2b9efb958e49fd8c5122b8db96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa906cf2b9efb958e49fd8c5122b8db96">&#9670;&nbsp;</a></span>MakeObjectFactory() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#ad3e2f7d1ecbb2acf51db0d1daed9bebc">pcIObjectFactory</a> AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#a9c6772e1923a27b8faa5a2cc121a3608">pcIObjectFactory_base</a>&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00064">64</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                                                                                   {</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                        <span class="keywordflow">return</span> <a class="code" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">MakeObjectFactory</a>( <span class="keyword">const_cast&lt;</span> <a class="code" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a> <span class="keyword">&gt;</span>( ptr ) );</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2dc282621cdfef44b424ac91efb965a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dc282621cdfef44b424ac91efb965a1">&#9670;&nbsp;</a></span>MakeObjectFactory() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="XMP__Environment_8h.html#a917e8e3f02685ec390fa3aee270f7747">XMP_PRIVATE</a> <a class="el" href="namespaceAdobeXMPCommon.html#a0863cf1c24764306839671985373b93f">pIObjectFactory</a> AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">pIObjectFactory_base</a>&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Convert raw pointer to shared pointer. The raw pointer is of version 1 interface where as the returned returned pointer depends on the version client is interested in. </p><dl class="section return"><dt>Returns</dt><dd>Raw pointer to const or non constant IObjectFactory interface. </dd></dl>

<p class="definition">Definition at line <a class="el" href="IObjectFactory_8h_source.html#l00061">61</a> of file <a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                                                                                                 {</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                        <span class="keywordflow">return</span> IObjectFactory::GetInterfaceVersion() &gt; 1 ? ptr-&gt;GetInterfacePointer&lt; IObjectFactory &gt;() : ptr;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="IVersionable_8h_source.html#l00040">AdobeXMPCommon::IVersionable::GetInterfacePointer()</a>.</p>

</div>
</div>
<a id="a2f02bcd4eafa4d318197c39dd55d0957"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f02bcd4eafa4d318197c39dd55d0957">&#9670;&nbsp;</a></span>REQ_FRIEND_CLASS_DECLARATION()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AdobeXMPCommon::IObjectFactory_v1::REQ_FRIEND_CLASS_DECLARATION </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>public/include/XMPCommon/Interfaces/<a class="el" href="IObjectFactory_8h_source.html">IObjectFactory.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclassAdobeXMPCommon_1_1IObjectFactory__v1_html_a2dc282621cdfef44b424ac91efb965a1"><div class="ttname"><a href="classAdobeXMPCommon_1_1IObjectFactory__v1.html#a2dc282621cdfef44b424ac91efb965a1">AdobeXMPCommon::IObjectFactory_v1::MakeObjectFactory</a></div><div class="ttdeci">static XMP_PRIVATE pIObjectFactory MakeObjectFactory(pIObjectFactory_base ptr)</div><div class="ttdef"><b>Definition:</b> <a href="IObjectFactory_8h_source.html#l00061">IObjectFactory.h:61</a></div></div>
<div class="ttc" id="anamespaceAdobeXMPCommon_html_a3eaf39cde126acb079462286763ca44a"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#a3eaf39cde126acb079462286763ca44a">AdobeXMPCommon::kIObjectFactoryID</a></div><div class="ttdeci">static const uint64 kIObjectFactoryID(0x6e4f626a46616374)</div></div>
<div class="ttc" id="anamespaceAdobeXMPCommon_html_adb1552a01da782d3f1c5ff00e49f48f8"><div class="ttname"><a href="namespaceAdobeXMPCommon.html#adb1552a01da782d3f1c5ff00e49f48f8">AdobeXMPCommon::pIObjectFactory_base</a></div><div class="ttdeci">IObjectFactory_v1 * pIObjectFactory_base</div><div class="ttdef"><b>Definition:</b> <a href="XMPCommonFwdDeclarations_8h_source.html#l00054">XMPCommonFwdDeclarations.h:54</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceAdobeXMPCommon.html">AdobeXMPCommon</a></li><li class="navelem"><a class="el" href="classAdobeXMPCommon_1_1IObjectFactory__v1.html">IObjectFactory_v1</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
